Red Hat System Administration II 8.2

Глава 2. Планирование выполнения задач

Аннотация

Цель Планирование автоматического выполнения задач
Задачи
  • Настройка разового выполнения команды в определенный момент в будущем

  • Планирование выполнения команд по повторяющемуся расписанию с помощью пользовательского файла crontab

  • Планирование выполнения команд по повторяющемуся расписанию с помощью системного файла и каталогов crontab

  • Включение и отключение таймеров systemd; настройка таймера, который управляет временными файлами

Разделы
  • Планирование отсроченного пользовательского задания (и упражнение)

  • Планирование повторяющихся пользовательских заданий (и упражнение)

  • Планирование повторяющихся системных заданий (и упражнение)

  • Управление временными файлами (и упражнение)

Лабораторная работа

Планирование выполнения задач

Планирование отсроченного пользовательского задания

Задачи

После завершения этого раздела вы сможете настроить команду, которая будет выполнена один раз в определенный момент в будущем.

Отсроченные пользовательские задачи

Вам может потребоваться запустить команду или набор команд в определенный момент в будущем. Представьте сотрудника, который хочет запланировать отправку электронного письма начальнику, или системного администратора, который настраивает брандмауэр и добавляет задание «обеспечения безопасности», чтобы сбросить параметры брандмауэра через 10 минут, если он не отключит это задание до этого момента.

Такие запланированные команды часто называют задачами или заданиями, а термин отсроченные говорит о том, что команды будут выполнены в будущем.

Одно из решений, доступных пользователям Red Hat Enterprise Linux для планирования отсроченных задач, ― at. В пакете at предоставляется системный демон (atd), а также набор утилит командной строки для взаимодействия с демоном (at, atq и другие). В установке Red Hat Enterprise Linux по умолчанию демон atd устанавливается и включается автоматически.

Пользователи (включая root) могут добавлять задания в очередь для демона atd с помощью команды at. Демон atd предоставляет 26 очередей (с a по z). Задания в очередях, идущих позже по алфавиту, получают более низкий системный приоритет (более высокий фактор уступчивости, который описан в одной из последующих глав).

Планирование отсроченных пользовательских задач

Используйте команду at TIMESPEC, чтобы запланировать новое задание. Команда at затем считывает команды с канала STDIN. Чтобы при вводе команд вручную завершить ввод, нажмите Ctrl+D. Для более сложных команд, в которых часто случаются опечатки, часто проще использовать перенаправление потока ввода из файла сценария (например, at now +5min < myscript), а не вводить все команды вручную в окне терминала.

Аргумент TIMESPEC команды at принимает много эффективных комбинаций, позволяя пользователям точно указать время выполнения задания. Обычно сначала указывается время, например 02:00pm, 15:59 или даже teatime, а затем идет необязательная дата или число дней. Далее приведены некоторые примеры возможных комбинаций.

  • now +5min

  • teatime tomorrow (teatime ― это 16:00)

  • noon +4 days

  • 5pm august 3 2021

Полный список допустимых спецификаций времени можно найти в определении в файле timespec (см. справочные материалы).

Просмотр отсроченных пользовательских заданий и управление ими

Чтобы просмотреть ожидающие задания текущего пользователя, используйте команду atq или at -l.

[user@host ~]$ atq
128  2Mon Feb  2 05:13:00 2015 3a 4user
29  Mon Feb  3 16:00:00 2014 h user
27  Tue Feb  4 12:00:00 2014 a user

В вышеуказанном выводе каждая строка представляет отдельное задание, запланированное к выполнению в будущем.

1

Уникальный номер задания.

2

Дата и время выполнения запланированного задания.

3

Указывает, что задание запланировано с очередью по умолчанию а. Задания могут быть запланированы с разными очередями.

4

Владелец задания (и пользователь, от имени которого будет выполнено задание).

Важно

Непривилегированные пользователи могут просматривать и контролировать только собственные задания. Пользователь root видит и контролирует все задания.

Для просмотра команд, которые будут выполняться при выполнении задания, используйте команду at -c JOBNUMBER. Эта команда показывает окружение задания, то есть окружение пользователя, создавшего задание, на момент создания задания, а также фактически выполняемые команды.

Удаление заданий

Команда atrm JOBNUMBER удаляет запланированное задание. Удаляйте задания, если они больше не нужны, например после успешной настройки конфигурации брандмауэра, сброс которой не требуется.

Ссылки

Man-страницы at(1) и atd(8)

/usr/share/doc/at/timespec